<?php

// 连接数据库函数
function my_connect($arr) {
    $host = isset($arr['host']) ? $arr['host'] : 'localhost';
    $port = isset($arr['port']) ? $arr['port'] : '3306';
    $user = isset($arr['user']) ? $arr['user'] : 'root';
    $password = isset($arr['password']) ? $arr['password'] : 'Myroot';
    $link = @mysql_connect("$host:$port", $user, $password);

    if (!$link) {
        echo "数据库连接失败！<br />";
        echo "错误编号：", mysql_errno(), "<br />";
        echo "错误信息：", mysql_error(), "<br />";
        die();
    }
}

function my_query($sql) {
    // 先执行 sql 语句
    $result = mysql_query($sql);
    // 判断执行结果
    if (!$result) {
        echo "SQL 语句执行失败！<br />";
        echo "错误编号：", mysql_errno(), "<br />";
        echo "错误信息：", mysql_error(), "<br />";
        die();
    }
    return $result;
}

// 封装 fetchall 函数，得到多行多列的数据
function fetchAll($sql) {
    $result = my_query($sql);
    $rows = array();
    while ($row = mysql_fetch_assoc($result)) {
        $rows[] = $row;
    }
    // 释放结果集资源
    mysql_free_result($result);
    return $rows;
}

// 封装 fetchRow 函数，得到一行多列的数据（一条记录）
function fetchRow($sql) {
    $result = my_query($sql);
    $row = mysql_fetch_assoc($result);
    // 释放结果集资源
    mysql_free_result($result);
    return $row;
}

// 封装 fetchColumn 函数，得到一行一列的数据（一个字段）
function fetchColumn($sql) {
    $result = my_query($sql);
    $row = mysql_fetch_row($result);
    // 释放结果集资源
    mysql_free_result($result);
    return isset($row[0]) ? $row[0] : '';
}

// 选择默认的字符集
function my_charset($arr) {
    $charset = isset($arr['charset']) ? $arr['charset'] : 'utf8';
    $sql = "SET NAMES $charset";
    my_query($sql);
}

// 选择默认的数据库
function my_dbname($arr) {
    $dbname = isset($arr['dbname']) ? $arr['dbname'] : '';
    $sql = "USE $dbname";
    my_query($sql);
}

// 加载数据库配置文件
$config = include DIR_CONFIG . '/config.php';
$arr = $config['db'];

// 数据库连接三部曲
// 1. 连接数据库
my_connect($arr);
// 2. 选择默认的字符集
my_charset($arr);
// 3. 选择默认的数据库
my_dbname($arr);

?>
